package com.kilomob.grady.proxy;

import com.kilomob.grady.exception.GradyException;
import com.kilomob.grady.rpc.Invoker;

public interface ProxyFactory {

    /**
     * create proxy.
     * 
     * @param invoker
     * @return proxy
     */
    <T> T getProxy(Invoker<T> invoker,String config) throws GradyException;

    /**
     * create invoker.
     * 
     * @param <T>
     * @param proxy
     * @param type
     * @param url
     * @return invoker
     */
    <T> Invoker<T> getInvoker(T proxy, Class<T> type ) throws GradyException;

}